package com.fin.quant.app.asset.service;

import com.fin.quant.app.vo.GetGoalBasedRecommendationsRequest;
import com.fin.quant.app.vo.GetRecommendationsRequest;
import com.fin.quant.app.vo.RecommendationVO;
import com.fin.quant.rpc.common.Result;

import java.util.List;

/**
 * 智能推荐应用服务接口
 */
public interface RecommendationService {

    /**
     * 获取智能推荐
     */
    Result<List<RecommendationVO>> getRecommendations(GetRecommendationsRequest request);
    /**
     * 获取今日推荐
     */
    Result<List<RecommendationVO>> getTodayRecommendations(Integer limit);

    /**
     * 获取周推荐
     */
    Result<List<RecommendationVO>> getWeeklyRecommendations(Integer limit);

    /**
     * 获取收入目标推荐
     */
    Result<List<RecommendationVO>> getIncomeGoalRecommendations(Double targetIncome, Integer limit);

    /**
     * 获取个性化推荐
     */
    Result<List<RecommendationVO>> getPersonalizedRecommendations(Long userId, Integer limit);

    /**
     * 反馈推荐结果
     */
    Result<String> feedbackRecommendation(Long recommendationId, String action, String reason);
}
